home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / comm / misc / BMSystem.lha / BM.c < prev    next >
C/C++ Source or Header  |  1997-12-13  |  3KB  |  129 lines

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. void escribe_inicio(FILE *pf,char *cabecera1,char *cabecerahttp,char *cabeceraftp,char *cadena,short int *ftp);
  6. void escribe_cadena(FILE *pf,char *cadena,short int *ftp);
  7. void escribe_fin(FILE *pf,char *final,char *vacia);
  8. char *lee_cadena(void);
  9.  
  10. void main(int argc,char *argv[])
  11. {
  12.     short int ftp=0;
  13.     int mal=0;
  14.     char vacia[]="";
  15.     char *cadena;
  16.     char aviso1[]="\nBookmark Maker by FrEdY !";
  17.     char aviso2[]="\nUsage:BM <filename>. BM -h for help";
  18.     char cabecera1[]="<LI><a href=";
  19.     char cabecerahttp[]="http://";
  20.     char cabeceraftp[]="ftp://";
  21.     char final[]="</a>\n";
  22.     FILE *pf;
  23.     puts(aviso1);
  24.     puts(aviso2);
  25.     if(argc>2)
  26.     {
  27.         mal=1;
  28.     }
  29.     if(strcmp(argv[1],"-h")==0)
  30.     {
  31.         printf("\nThis program creates a simple HTML text to use as bookmark.");
  32.         printf("\nThe format of the text lines is:");
  33.         printf("\n<LI><a href=");
  34.         putc('"',stdout);
  35.         printf("http:// or ftp://address");
  36.         putc('"',stdout);
  37.         printf("> Name </a>");
  38.         printf("\nIf the address is ftp:// instead http:// put a - as first address letter.");
  39.         printf("\nThe file will be saved as 'Bookmark.HTML' by default.");
  40.         printf("\nTo finish, press RETURN at the 'Enter Address' prompt.\n");
  41.         mal=1;
  42.     }
  43.     if(mal!=1)
  44.     {
  45.         if(argc==1)
  46.         {
  47.             pf=fopen("Bookmark.HTML","a+");
  48.         }
  49.         else
  50.         {
  51.             pf=fopen(argv[1],"a+");
  52.         }
  53.         cadena=lee_cadena();
  54.         while((strcmp(vacia,cadena)!=0) && mal==0)
  55.         {
  56.             ftp=0;
  57.             fflush(stdin);
  58.             escribe_inicio(pf,cabecera1,cabecerahttp,cabeceraftp,cadena,&ftp);
  59.             escribe_cadena(pf,cadena,&ftp);
  60.             escribe_fin(pf,final,vacia);
  61.             cadena=lee_cadena();
  62.         }
  63.         fclose(pf);
  64.     }
  65. }
  66.  
  67. char *lee_cadena(void)
  68. {
  69.     char *p=NULL;
  70.     char aux[100];
  71.     printf("\nEnter Address:");
  72.     gets(aux);
  73.     p=(char *) malloc((strlen(aux)+1)*sizeof(char));
  74.     strcpy(p,aux);
  75.     return(p);
  76. }
  77.  
  78. void escribe_inicio(FILE *pf,char *cabecera1,char *cabecerahttp,char *cabeceraftp,char *cadena,short int *ftp)
  79. {
  80.     fputs(cabecera1,pf);
  81.     fputc('"' ,pf);
  82.     if(cadena[0]=='-')
  83.     {
  84.         fputs(cabeceraftp,pf);
  85.         *ftp=1;
  86.     }
  87.     else
  88.     {
  89.         fputs(cabecerahttp,pf);
  90.     }
  91. }
  92.  
  93. void escribe_cadena(FILE *pf,char *cadena,short int *ftp)
  94. {
  95.     int i=1;
  96.     if(*ftp==0)
  97.     {
  98.         fputs(cadena,pf);
  99.     }
  100.     else
  101.     {
  102.         while(cadena[i]!='\0')
  103.         {
  104.             fputc(cadena[i],pf);
  105.             i++;
  106.         }
  107.     }
  108.     fputc('"',pf);
  109. }
  110.  
  111. void escribe_fin(FILE *pf,char *final,char *vacia)
  112. {
  113.     char nombre[80];
  114.     fputc('>',pf);
  115.     fputc(' ',pf);
  116.     printf("Enter Name for the Address:");
  117.     gets(nombre);
  118.     fflush(stdin);
  119.     if(strcmp(nombre,vacia)==0)
  120.     {
  121.         fputc('*',pf);
  122.     }
  123.     else
  124.     {
  125.         fputs(nombre,pf);
  126.     }
  127.     fputs(final,pf);
  128. }
  129.